import { defineStore } from 'pinia';
import { ElMessageBox, ElMessage } from 'element-plus';
import { getToken, removeToken, getUser, setUser, removeUser } from '@/utils/auth'
import { getInfo } from '@/api/api.js'
import router from '@/router';

export const useStore = defineStore('main', {
  state: () => ({
    tabType: '首页', // 存储当前tab类型的状态
    imgSrcPrefix: 'http://101.126.23.121:8010/UpLoadFiles/default/', // 图片前缀地址
    imgfengMian: import.meta.env.VITE_API_BASE_URL, // 线上接口地址
    bigSelectValue: '新闻',
    bigInputValue: '',
    token: getToken(),
    user: getUser(),
  }),
  actions: {
    /**
     * 设置当前tab类型
     * @param {string} type - 要设置的tab类型
     */
    setTabType(newType) {
      this.tabType = newType.toString() // 强制转换为字符串保持类型一致
    },
    /**
     * 显示登录确认弹窗
     * 使用Element Plus的MessageBox组件实现
     * 确认后跳转登录页，取消则关闭弹窗
     */
    showLoginModal() {
      ElMessageBox.confirm('当前数据需要登录查看', '登录提示', {
        confirmButtonText: '去登录',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        router.push('/login'); // 路由跳转至登录页
      }).catch(() => { }); // 取消操作不做处理
    },
    // 获取用户信息
    async getInfo() {
      const res = await getInfo()
      if (res.code == 200) {
        this.user = res.result
        setUser(res.result)
        return true
      }
      else {
        ElMessage.error(res.msg || '获取用户信息失败')
        return false
      }
    },
    // 退出系统
    logOut() {
      this.token = ''
      this.user = null
      removeToken()
      removeUser()
      return true
    }
  }
});
